package com.headwind.logistics.order.service.inter;

import com.headwind.logistics.common.pojo.ExpressGrant;
import com.headwind.logistics.order.dto.PlanOrderAddressCustomerDto;
import com.headwind.logistics.common.pojo.BaseNetSite;
import com.headwind.logistics.order.entity.OrderFeeType;
import com.headwind.logistics.order.entity.OrderPack;
import org.apache.ibatis.annotations.Param;

import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.List;

/**
 * @Author 盛夏
 * @Date 2020-07-17 上午 10:46
 * @Version 1.0
 * @DESCRIPTION 填写类作用描述
 */
public interface PlanOrderServiceInter {
    /**
     *  查询所有包装类型
     * @return 包装类集合
     */
    List<OrderPack> queryOrderPack();

    /**
     * 查询所有费用类型
     * @return  费用类型集合
     */
    List<OrderFeeType> queryOderFeeType();

    /**
     * 查询预录单数量
     * @return  预录单数量
     */
    public int queryPlanOrderCount();
    /**
     * 查询所有预录单数据
     * @param page   第几条数据
     * @param limit 当前页码
     * @return  预录单数据传输对象集合
     */
    public List<PlanOrderAddressCustomerDto> queryPlanOrderPage(Integer page,Integer limit,
                                                                String username,String planOdd,String phone,
                                                                String orderTime,Long empId);


    /**
     * 根据区名查询区的所有网点
     * @param area
     * @param address
     * @return
     */
    HashMap<String,List<BaseNetSite>> queryBaseNetSiteById(String area, String address);

    /**
     * 查询面单发放记录得到面单号
     * @param useObject  网点主键
     * @return 面单发放记录对象
     */
    String queryExpressGrant(String useObject);

    /**
     * 根据预录单号查询预录单
     * @param planOrderOdd  预录单号
     * @return      返回客户Id
     */
    PlanOrderAddressCustomerDto queryPlanOrderByOdd(String planOrderOdd);

    /**
     * 根据预录单号逻辑删除预录单
     * @param planOrderOdd  预录单号
     * @return  状态码
     */
    public int logicDeletePlanOrderByOdd(String planOrderOdd, HttpSession session);


    int updatePlanOrderMessage(PlanOrderAddressCustomerDto planDto);
}
